package mysql8学习.高级.第11章_数据库的设计规范之范式;

/**
 *
 * (单号)   (供应商编号)  (供应商名称)  (仓南)    (条码)   (名称)     (属性)      (数量)   (进货价格) (进货金额)
 * 100001       1       食品厂       仓库      0001     方便面     6包/袋       200     25       5000
 * 100001       1       食品厂       仓库      0002     棒棒糖     10支/盒      400     9.9      3960
 * 100002       2       服装厂       卖场      0003     西服       套          5       2000     10000
 * 100003       1       食品厂       卖场      0002     棒棒糖     10支/盒      200     15       3000
 *
 * 这个表中的字段很多，表里的数据量也很惊人。大量重复导致表变得庞大，效率极低。如何改造?
 *
 * 在实际工作场景中，这种由于数据表结构设计不合理，而导致的数据重复的现象并不少见。
 * 往往是系统虽然能够运行，承载能力却很差，稍微有点流量，就会出现内存不足、CUP 使用率飙升的情况，
 * 甚至会导致整个项目失败。
 *
 * 7.1迭代1次:考虑1NF
 *   第一范式要求:所有的字段都是基本数据字段,不可进一步拆分。
 *   这里需要确认，所有的列中，每个字段只包含一种数据。
 *   (属性)  拆成  规格 和 单位
 *
 * (单号)   (供应商编号)  (供应商名称)  (仓南)    (条码)   (名称)     (规格)   (单位)   (数量)   (进货价格) (进货金额)
 * 100001       1       食品厂       仓库      0001     方便面     6包      袋      200     25       5000
 * 100001       1       食品厂       仓库      0002     棒棒糖     10支     盒      400     9.9      3960
 * 100002       2       服装厂       卖场      0003     西服       null    套      5       2000     10000
 * 100003       1       食品厂       卖场      0002     棒棒糖     10支     盒      200     15       3000
 *
 * 7.2迭代2次:考虑2NF
 * 第二范式要求,在满足第一范式的基础上，
 * 还要满足数据表里的每一条数据记录，都是可唯一标识的。
 * 而且所有字段，都必须完全依赖主键，不能只依赖主键的一部分。
 *
 * (单号)   (供应商编号)  (供应商名称)  (仓南)
 * 100001       1       食品厂       仓库
 * 100002       2       服装厂       卖场
 * 100003       1       食品厂       卖场
 *
 *
 * (单号)      (条码)     (数量)   (进货价格) (进货金额)
 * 100001       0001      200     25       5000
 * 100001       0002      400     9.9      3960
 * 100002       0003      5       2000     10000
 * 100003       0002      200     15       3000
 *
 * (条码)    (名称)     (规格)   (单位)
 *  0001     方便面     6包      袋
 *  0002     棒棒糖     10支     盒
 *  0003     西服       null    套
 *
 * 7.3 迭代3次:考虑3NF
 *
 * (单号)   (供应商编号)   (仓南)
 * 100001       1        仓库
 * 100002       2        卖场
 * 100003       1        卖场
 *
 * (供应商编号)  (供应商名称)
 *   1       食品厂
 *   2       服装厂
 *
 *  (单号)      (条码)     (数量)   (进货价格) (进货金额)
 * 100001       0001      200     25       5000
 * 100001       0002      400     9.9      3960
 * 100002       0003      5       2000     10000
 * 100003       0002      200     15       3000
 *
 * (条码)    (名称)     (规格)   (单位)
 *  0001     方便面     6包      袋
 *  0002     棒棒糖     10支     盒
 *  0003     西服       null    套
 */
public class H_实战案例 {

}
